(function(go){

function init (){
    
    go.ajax = (method , url , data) => {//（method ， url [,dataOPtions]）

        return new Promise((resolve , reject) => {
            let request;
            let str = '';
            (function(method , url , data){//ajax入口（method ， url [,dataOPtions]）
                if (window.XMLHttpRequest) {// 新建XMLHttpRequest对象,兼容ie
                    request = new XMLHttpRequest();
                } else {
                    request = new ActiveXObject('Microsoft.XMLHTTP');
                }
                request.onreadystatechange = function () { // 状态发生变化时，函数被回调
                    if (request.readyState === 4) { // 成功完成
                        // 判断响应结果:
                        if (request.status === 200) {
                            // 成功，通过responseText拿到响应的文本:
                            resolve(request.responseText);
                        } else {
                            // 失败，根据响应码判断失败原因:
                            reject(request.status);
                        }
                    } else {
                        // HTTP请求还在继续...
                    }
                }
                
                // 发送请求:
                method = method.toUpperCase();//将方式转换为大写容错
                request.open(method, url);
                if(method === 'GET' && data){
                    url += '?';
                    for(let i in data){
                        url = url + i + '=' + data[i] + '&';
                    }
                    request.send();
                }
                
                if(method === 'POST'){
                    request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
                    if(data){
                        for(let i in data){
                            str = str + i + '=' + data[i] + '&';
                        }
                    }
                    request.send(str);
                }
            })(method , url , data);
        }) 
    }
}

init();

})(window)
